diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index d27e3d8d3..501e71648 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -732,6 +732,11 @@ "name": "squarespace", "source": "third_party/squarespace", "description": "Brainstorm business names and check domain availability, pricing, and checkout links on Squarespace." + }, + { + "name": "runta", + "source": "third_party/runta", + "description": "Create and run persistent agent runtimes, publish ports, and manage egress, checkpoints, and images in Runta." } ] } diff --git a/README.md b/README.md index 3e13281f1..3c4ad8048 100644 --- a/README.md +++ b/README.md @@ -134,6 +134,7 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | `paypal` | [PayPal](third_party/paypal/) | Cursor | Integrations | Work with invoices, orders, refunds, subscriptions, disputes, and transactions in PayPal. | | `engine` | [Engine](third_party/engine/) | Cursor | Integrations | Search and book hotels, shorten or cancel stays, and check support cases in Engine. | | `squarespace` | [Squarespace](third_party/squarespace/) | Cursor | Integrations | Brainstorm business names and check domain availability, pricing, and checkout links on Squarespace. | +| `runta` | [Runta](third_party/runta/) | Cursor | Integrations | Create and run persistent agent runtimes, publish ports, and manage egress, checkpoints, and images in Runta. | Author values match each plugin’s `plugin.json` `author.name` (Cursor lists `plugins@cursor.com` in the manifest). ## Repository structure diff --git a/third_party/runta/.cursor-plugin/plugin.json b/third_party/runta/.cursor-plugin/plugin.json new file mode 100644 index 000000000..67a04c87a --- /dev/null +++ b/third_party/runta/.cursor-plugin/plugin.json @@ -0,0 +1,37 @@ +{ + "name": "runta", + "displayName": "Runta", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Create and run persistent agent runtimes, publish ports, and manage egress, checkpoints, and images in Runta.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://runta.com/docs/integrations/mcp/", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "runta", + "agent runtime", + "persistent runtime", + "sandbox", + "cloud computer", + "checkpoints", + "egress", + "ssh", + "vnc", + "mcp" + ], + "category": "integrations", + "tags": [ + "runta", + "runtime", + "infrastructure", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/runta/CHANGELOG.md b/third_party/runta/CHANGELOG.md new file mode 100644 index 000000000..99d25172a --- /dev/null +++ b/third_party/runta/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `runta` MCP server pointing at Runta's hosted Streamable HTTP endpoint (`https://mcp.runta.com/mcp`). +- Auth uses OAuth with Runta sign-in (`api.runta.com`, scopes `runtime:read` and `runtime:manage`). Runta identifies clients with Client ID Metadata Documents instead of dynamic client registration, so there is no client ID or API key to configure. +- Logo: Runta's fox mark, the 256×256 favicon published on runta.com. diff --git a/third_party/runta/LICENSE b/third_party/runta/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/runta/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/runta/README.md b/third_party/runta/README.md new file mode 100644 index 000000000..eb3ba69b2 --- /dev/null +++ b/third_party/runta/README.md @@ -0,0 +1,66 @@ +# Runta + +Cursor plugin that connects agents to [Runta](https://runta.com) through Runta's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Create and manage persistent Runta runtimes for AI agents: start, pause, resize, and delete them, run commands, publish ports over HTTPS, set egress policy, take and restore checkpoints, build runtime images, and manage VNC desktop and SSH access. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Runta**. +3. Click **Install**, then complete the Runta sign-in prompt. + +Or run `/add-plugin runta` in chat. + +## MCP + +```json +{ + "mcpServers": { + "runta": { + "type": "http", + "url": "https://mcp.runta.com/mcp" + } + } +} +``` + +Auth is OAuth with PKCE through Runta sign-in at `api.runta.com`, with the `runtime:read` and `runtime:manage` scopes. Runta identifies clients with Client ID Metadata Documents instead of dynamic client registration, so there is no client ID, secret, or API key to configure. When you connect, Runta's consent page opens in your browser: check that the client is Cursor, pick the organization, and approve. Tool calls run as you, with your organization role. + +## What agents can do + +| Area | Tools | +| --- | --- | +| Account | `whoami` | +| Runtimes | `list_runtimes`, `get_runtime`, `create_runtime`, `start_runtime`, `stop_runtime`, `pause_runtime`, `resume_runtime`, `resize_runtime`, `set_idle_policy`, `delete_runtime` | +| Commands | `run_command` | +| Published ports | `list_ports`, `publish_port`, `unpublish_port` | +| Egress | `get_egress`, `set_egress_policy`, `set_token_saving` | +| Checkpoints | `list_checkpoints`, `create_checkpoint`, `restore_checkpoint`, `delete_checkpoint` | +| Runtime images | `list_runtime_images`, `build_runtime_image`, `list_runtime_image_builds`, `cancel_runtime_image_build`, `delete_runtime_image` | +| VNC desktop | `get_vnc`, `enable_vnc`, `disable_vnc`, `list_vnc_credentials`, `create_vnc_credential`, `revoke_vnc_credential` | +| SSH access | `list_ssh_keys`, `list_runtime_ssh_keys`, `attach_ssh_key`, `detach_ssh_key` | + +The hosted server is the source of truth for tool names and schemas. Runta publishes the tool reference at https://runta.com/docs/integrations/mcp/. + +## Notes + +- You need a Runta account in an organization. Sign up at https://dashboard.runta.com. +- The server can change and delete data: creating and deleting runtimes, running commands, and restoring checkpoints are all tool calls. Each tool says whether it reads, changes, or deletes, so Cursor can ask before running a change. Approve each one deliberately. +- Changing a runtime that another member owns needs the Owner or Admin role. +- Lifecycle tools return once Runta accepts the request. The agent then checks progress with `get_runtime`, `list_checkpoints`, or `list_runtime_image_builds`. +- `run_command` runs one non-interactive command and returns its output. For an interactive shell, use `runta exec` or SSH. The server can't copy files from your computer (use `runta cp`), and `build_runtime_image` can't `COPY` local files. +- Anyone with the URL of a published port can reach the service on it. +- The server does not manage secrets, billing, API keys, or organization members. + +## Docs + +- Runta MCP server: https://runta.com/docs/integrations/mcp/ +- Runta docs: https://runta.com/docs/ +- Server URL: https://mcp.runta.com/mcp + +Logo is Runta's fox mark, the 256×256 favicon published on runta.com. + +## License + +MIT diff --git a/third_party/runta/assets/logo.png b/third_party/runta/assets/logo.png new file mode 100644 index 000000000..a641e5714 Binary files /dev/null and b/third_party/runta/assets/logo.png differ diff --git a/third_party/runta/mcp.json b/third_party/runta/mcp.json new file mode 100644 index 000000000..704507296 --- /dev/null +++ b/third_party/runta/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "runta": { + "type": "http", + "url": "https://mcp.runta.com/mcp" + } + } +}